#!/usr/bin/env python
#-*-coding:utf-8-*-

# core.py is part of "lemon-py" (http://code.google.com/p/lemon-py/).
# Copyright (C) 2010  - JBC <JBC dot Develop at gmail dot com >

# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.

# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.

# You should have received a copy of the GNU Lesser General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.


################################################################################
# DOCS
################################################################################

"""Base class and error for singleinstance"""


################################################################################
# META
################################################################################

__version__ = "0.1"
__license__ = "GPL3"
__author__ = "JBC"
__since__ = "0.1"
__date__ = "2010-06-23"


################################################################################
# IMPORTS
################################################################################

import os


################################################################################
# CONSTANS
################################################################################

# Error Codes
ERROR_OS_NOT_SUPORTED = 0


################################################################################
# EXCEPTION
################################################################################

class SingleInstanceError(BaseException):
    """Clase de error para singleinstance.py"""

    def __init__ (self, message, code):
        super(SingleInstanceError, self).__init__()
        self.message = message
        self.code = code


################################################################################
# BASE CLASS
################################################################################

class SingleInstanceBase(object):
    """ Limits application to single instance """

    def setup(self, **kwargs):
        """Setup the app for only one instance run"""
        raise NotImplementedError()

    def isrunning(self):
        """True if the app is running"""
        raise NotImplementedError()

    def __del__(self):
        """Delete all control data"""
        raise NotImplementedError()


################################################################################
# MAIN
################################################################################

if __name__ == "__main__":
    print __doc__
